# backend/config.py

import os  # 导入 os 模块，用于访问环境变量

class Config:
    # 应用密钥，用于保护会话和 JWT（JSON Web Token）
    SECRET_KEY = os.environ.get('SECRET_KEY') or 'your_secret_key'  # 从环境变量中获取 SECRET_KEY，若未设置则使用默认值
    JWT_SECRET_KEY = os.environ.get('JWT_SECRET_KEY') or 'your_jwt_secret_key'  # 从环境变量中获取 JWT_SECRET_KEY，若未设置则使用默认值

    # 数据库配置
    SQLALCHEMY_DATABASE_URI = os.environ.get('SQLALCHEMY_DATABASE_URI') or 'mysql+pymysql://ruangong:123456@localhost/LogisticsDecisionSupport'  # 从环境变量中获取数据库 URI，若未设置则使用默认的 MySQL 数据库连接字符串
    SQLALCHEMY_TRACK_MODIFICATIONS = False  # 关闭 SQLAlchemy 的修改跟踪，以节省资源

    # JWT 配置
    JWT_ACCESS_TOKEN_EXPIRES = 3600  # Access Token 的有效期（单位：秒）
    JWT_REFRESH_TOKEN_EXPIRES = 86400  # Refresh Token 的有效期（单位：秒）
    JWT_TOKEN_LOCATION = ['cookies']  # 指定 JWT 存放的位置为 cookies
    JWT_COOKIE_SECURE = False  # 设为 False 在开发环境中使用；在生产环境下使用 HTTPS 时应设为 True
    JWT_ACCESS_COOKIE_PATH = '/'  # Access Token cookie 的路径
    JWT_REFRESH_COOKIE_PATH = '/api/auth/refresh'  # Refresh Token cookie 的路径
    JWT_COOKIE_CSRF_PROTECT = False  # 如果需要 CSRF（跨站请求伪造）保护，可以设置为 True，默认情况下不启用

    # 其他配置
    DEBUG = True  # 开启调试模式
